import { drawFunctions } from './geometry-draw.js';

const geometryTypes = {
    // 点的分类
    'point-basic': {
        title: '点的基本概念',
        description: `
点是几何中最基本的概念，没有大小，只有位置。

### 特点
* 没有长度、面积和体积
* 可以确定位置
* 是几何图形的基本组成元素

### 应用
* 几何图形的顶点
* 线的端点
* 确定位置
        `,
        drawDemo: drawFunctions.drawBasicPoint
    },
    'point-coordinate': {
        title: '坐标平面中的点',
        description: `
在坐标平面中，点可以用有序数对(x,y)表示。

### 知识点
* 横坐标和纵坐标
* 象限的划分
* 点的坐标表示方法

### 应用
* 确定平面上的位置
* 描述图形的顶点
* 表示运动轨迹
        `,
        drawDemo: drawFunctions.drawCoordinatePoint
    },

    // 线的分类
    'line-straight': {
        title: '直线',
        description: `
直线是无限延伸的线。

### 特点
* 无限延伸
* 没有端点
* 两点确定一条直线

### 表示方法
* 点斜式
* 一般式
* 两点式
        `,
        drawDemo: drawFunctions.drawStraightLine
    },
    'line-segment': {
        title: '线段',
        description: `
线段是有两个端点的直线部分。

### 特点
* 有固定长度
* 有两个端点
* 是最短的连接两点的路径

### 应用
* 测量距离
* 构成多边形
* 表示物体的边
        `,
        drawDemo: drawFunctions.drawLineSegment
    },
    'line-ray': {
        title: '射线',
        description: `
射线是从一个点出发，沿着一个方向无限延伸的直线部分。

### 特点
* 有一个端点（起点）
* 向一个方向无限延伸
* 用于表示方向

### 应用
* 角的边
* 表示光线传播
* 表示运动方向
        `,
        drawDemo: drawFunctions.drawRay
    },

    // 面的分类
    'surface-angle': {
        title: '角',
        description: `
角是由一个顶点和两条射线构成的图形。

### 分类
* 锐角（小于90°）
* 直角（等于90°）
* 钝角（大于90°）

### 特点
* 有一个顶点
* 有两条边
* 可以用度数或弧度表示
        `,
        drawDemo: drawFunctions.drawAngle
    },
    'surface-triangle': {
        title: '三角形',
        description: `
三角形是由三条线段围成的平面图形。

### 分类
* 按角分：锐角、直角、钝角三角形
* 按边分：等边、等腰、不等边三角形

### 性质
* 内角和为180°
* 任意两边之和大于第三边
* 三边确定一个三角形
        `,
        drawDemo: drawFunctions.drawTriangle
    },
    'surface-quadrilateral': {
        title: '四边形',
        description: `
四边形是由四条线段围成的平面图形。

### 分类
* 平行四边形
* 矩形
* 正方形
* 梯形
* 菱形

### 性质
* 内角和为360°
* 对角线互相平分（平行四边形）
        `,
        drawDemo: drawFunctions.drawQuadrilateral
    },
    'surface-polygon': {
        title: '多边形',
        description: `
多边形是由多条线段围成的平面图形。

### 分类
* 正多边形
* 凸多边形
* 凹多边形

### 性质
* 内角和 = (n-2)×180°
* 外角和 = 360°
* n条边有n个顶点
        `,
        drawDemo: drawFunctions.drawPolygon
    },
    'surface-circle': {
        title: '圆',
        description: `
圆是平面上到定点（圆心）距离相等的所有点的集合。

### 要素
* 圆心
* 半径
* 直径
* 圆周

### 性质
* 圆周率π
* 周长 = 2πr
* 面积 = πr²
        `,
        drawDemo: drawFunctions.drawCircle
    },
    'surface-arc': {
        title: '弧和扇形',
        description: `
弧是圆上的一部分，扇形是由圆心和弧围成的图形。

### 概念
* 弧长
* 弧度
* 扇形面积

### 应用
* 表示角度
* 圆形统计图
* 运动轨迹
        `,
        drawDemo: drawFunctions.drawArcAndSector
    },

    // 体的分类
    'solid-cube': {
        title: '立方体',
        description: `
立方体是由6个相等的正方形面围成的正多面体。

### 特点
* 6个面全等
* 12条棱相等
* 8个顶点

### 性质
* 体积 = a³
* 表面积 = 6a²
* 对角线长 = a√3
        `,
        drawDemo: drawFunctions.drawCube
    },
    'solid-cuboid': {
        title: '长方体',
        description: `
长方体是由6个矩形面围成的立体图形。

### 特点
* 相对面平行且全等
* 12条棱中，相互平行的4条棱相等
* 8个顶点

### 性质
* 体积 = 长×宽×高
* 表面积 = 2(长×宽 + 长×高 + 宽×高)
        `,
        drawDemo: drawFunctions.drawCuboid
    },
    'solid-sphere': {
        title: '球体',
        description: `
球体是空间中到定点（球心）距离相等的所有点的集合。

### 特点
* 完全对称
* 无棱无顶点
* 任意截面都是圆

### 性质
* 体积 = 4/3πr³
* 表面积 = 4πr²
        `,
        drawDemo: drawFunctions.drawSphere
    },
    'solid-cone': {
        title: '圆锥',
        description: `
圆锥是由一个圆面和一个圆外一点（顶点）围成的立体图形。

### 组成
* 底面（圆）
* 顶点
* 母线

### 性质
* 体积 = 1/3πr²h
* 侧面积 = πrs
* 全面积 = πr(r+s)
        `,
        drawDemo: drawFunctions.drawCone
    },
    'solid-prism': {
        title: '棱柱',
        description: `
棱柱是由两个平行的多边形和若干个矩形围成的立体图形。

### 分类
* 三棱柱
* 四棱柱
* 正棱柱
* 斜棱柱

### 性质
* 体积 = 底面积×高
* 侧面积 = 周长×高
        `,
        drawDemo: drawFunctions.drawPrism
    }
};

// 直接导出数据，不需要绑定函数
export default geometryTypes; 